#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :recursion.py
# @Time      :2021/3/18 21:45
# @Author    :Letquit
"""
文件说明：递归

"""
# 在盒子堆中找到钥匙
# 伪代码 对手头问题的简要描述
# while循环：只要盒子不空，就从中取一个盒子，并在其中仔细查找
def look_for_key(main_box):
    pile = main_box.make_a_pile_to_look_through()
    while pile is not empty:
        box = pile.grab_a_box()
        for item in box:
            if item.is_a_box():
                pile.append(item)
            elif item.is_a_key():
                print("found the key!")
# 使用递归：函数调用自己
def look_for_key(box):
    for item in box():
        look_for_key(item)    # 递归
    elif item.is_a_key():
    print("found the key!")
# 使用循环，性能可能更高
# 使用递归，代码更容易理解
if __name__ == "__main__":
    run_code = 0
